import { getToken, removeUserInfo } from './user'
/*
	二次封装uni.request
	uni 同时开发三个平台应用 app 小程序 和 h5
	app和小程序是直接跨域请求，而 h5不行，开发时需要配置反向代理
	判断平台 和 运行环境（开发还是生产）
	
	app和 小程序 baseURL 源
	h5 判断开发还是生产 开发请求前缀 生产 加源
*/
// #ifndef H5
const baseURL = "https://api.it120.cc/conner";
// #endif

// #ifdef H5
// 判断开发还是生产
let baseURL = '';
if (import.meta.env.DEV) {
	// 开发环境
	baseURL = "/conner";
} else {
	baseURL = "https://api.it120.cc/conner";
}
// #endif

const request = (url, config = {data:{}}) => {
	return new Promise((resolve, reject) => {
		uni.showLoading({
			title: "加载中...",
			mask: true
		})
		uni.request({
			url: baseURL + url,
			method: config.method || 'GET',
			data: {
				...config.data,
				token: getToken() || ''
			},
			header: {
				"content-type": "application/x-www-form-urlencoded"
			},
			success: res => {
				// 判断token是否过期或者未登录
				if(res.data.code === 2000) {
					uni.showToast({
						title:'用户未登录',
						mask: true
					})
					// 清除用户登录缓存
					removeUserInfo();
					uni.redirectTo({
						url: "/pages/login/login"
					})
				}
				resolve(res.data)
			},
			fail: err => {
				reject(err)
			},
			complete: () => {
				uni.hideLoading()
			}
		})
	})
}

export default request